Skip to content

Создание воспоминаний

Тут вы узнаете, как Мари создаёт воспоминания


Итак, каждый раз, когда пользователь задаёт вопрос Мари и когда она ему отвечает, считаются токены.

Details

Например:

Пользователь ввёл сообщение " 2 + 2 = ", и Мари посчитала токены этого сообщения

TIP

Функция, которая считает токены, находится https://codeberg.org/Better_Look_Next_Time/Mary_CoreMind/src/branch/main/src/helpers/counterTokens.ts

Потом Мари ответила пользователю сообщением, и она также посчитала токены своего ответа.

Как только количество токенов станет равным 1000, то вызовется функция Compressed

ts
async Compressed(tokens: number) {
    if (tokens >= 1000) {
      const model = this.thoughtsArray[0]
      const historyChat = getHistoryChat(this.chatId, model, getCounterChat(this.chatId, model))
      const historyUser = getHistoryUser(this.chatId, this.userId, getCounterUser(this.chatId, this.userId))
      const { commpresedMemory, userCharacter } = await memoryCompression(historyChat, historyUser)
      insertUsersMessage(this.chatId, this.userId, 'character', userCharacter, 1)
      insertChatMemory(this.chatId, commpresedMemory, 1)
    }
}

Что тут происходит:

  1. Функция проверяет количество токенов
  2. Получает id первой нейронки в массиве thoughtsArray
  3. Получает историю сообщений чата, используя id чата и id нейронки
  4. Получает сообщения пользователя, используя id чата и id пользователя
  5. Отдаёт функции memoryCompression историю сообщений чата и сообщения пользователя
  6. Получает сжатую память истории чата и описание характера пользователя
  7. Добавляет характер пользователя в сообщения пользователя с типом character
  8. Добавляет сжатую память истории чата в историю чата с типом memory

INFO

Функцию memoryCompression можно посмотреть здесь https://codeberg.org/Better_Look_Next_Time/Mary_CoreMind/src/branch/main/src/models/openai/compresed.ts

IMPORTANT

Вы скорее всего задались вопросом, почему мы получаем id первой нейронки в массиве thoughtsArray. Дело в том, что история сообщений для всех нейронок одинаковая. И чтобы сделать Мари более гибкой, мы сделали так.

Потом объединитель будет использовать эти воспоминания для объединения мыслей Мари